package com.jnks.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.jnks.pojo.domain.vo.DroneCoorRespVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 无人机表
 * </p>
 *
 * @author Ryo
 * @since 2024-04-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("drone_t")
public class DroneTDO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 雪花算法生成
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 无人机编号
     */
    private String code;

    /**
     * 无人机批次号
     */
    @TableField("batchNo")
    private String batchNo;

    /**
     * 无人机型号
     */
    private String model;


    /**
     * 无人机品牌ID(数据字典)
     */
    @TableField("brandId")
    private Integer brandId;

    /**
     * 起飞时间
     */
    @TableField("takeoffTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date takeoffTime;

    /**
     * 起飞经度
     */
    @TableField("takeoffLongitude")
    private String takeoffLongitude;

    /**
     * 起飞纬度
     */
    @TableField("takeoffLatitude")
    private String takeoffLatitude;

    /**
     * GPS起飞经度
     */
    @TableField("gps_takeoffLongitude")
    private String gpsTakeofflongitude;

    /**
     * GPS起飞纬度
     */
    @TableField("gps_takeoffLatitude")
    private String gpsTakeofflatitude;

    /**
     * 飞手经度
     */
    @TableField("driverLongitude")
    private String driverLongitude;

    /**
     * 飞手维度
     */
    @TableField("driverLatitude")
    private String driverLatitude;

    /**
     * GPS飞手经度
     */
    @TableField("gps_driverLongitude")
    private String gpsDriverlongitude;

    /**
     * GPS飞手纬度
     */
    @TableField("gps_driverLatitude")
    private String gpsDriverlatitude;

    /**
     * 降落时间
     */
    @TableField("landingTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date landingTime;

    /**
     * 降落经度
     */
    @TableField("landingLongitude")
    private String landingLongitude;

    /**
     * 降落纬度
     */
    @TableField("landingLatitude")
    private String landingLatitude;

    /**
     * 持续时间(秒)
     */
    private Integer lastsec;

    /**
     * 类型 1-TDOA 3-电子身份证 2-AOA
     */
    private Integer type;

    /**
     * 布防区ID
     */
    @TableField("armedZoneId")
    private Integer armedZoneId;

    /**
     * 是否反制 1-是 0-否
     */
    @TableField("strikeFlag")
    private Integer strikeFlag;

    /**
     * 是否核查 1-是 0-否
     */
    @TableField("checkFlag")
    private Integer checkFlag;


    @TableField("landFlag")
    private Integer landFlag;

    @TableField("flyHeight")
    private Double flyHeight;

    @TableField("discoveryPlace")
    private String discoveryPlace;


    private String activitys;

    @TableField("signalStrength")
    private String signalStrength;


    private String power;

    @TableField("driverId")
    private Integer driverId;

    @TableField("driverName")
    private String driverName;

    @TableField("driverPhone")
    private String driverPhone;

    @TableField("reportId")
    private Integer reportId;

    @TableField("reportType")
    private Integer reportType;

    @TableField("provinceId")
    private Integer provinceId;

    @TableField("areaType")
    private Integer areaType;

    @TableField("strikeTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date strikeTime;

    @TableField("strikeName")
    private String strikeName;

    private String frequency;

    /**
     * @describe 是否警用无人机 1是
     */
    @TableField("policeDrone")
    private Integer policeDrone;

    /**
     * @describe 是否经过亚运场馆 1是
     */
    @TableField("asinaDataFlag")
    private Integer asinaDataFlag;

    @TableField("defenseType")
    private Integer defenseType;

    @TableField("droneSeriaID")
    private String droneSeriaID;


    @TableField("passbyForbitArea")
    private Integer passbyForbitArea;


    private DroneCoorRespVO respVO;



//    @TableField(exist = false)
//    private Integer companyId;

}
